package reconhecimento.preprocessamento;

import reconhecimento.model.Imagem;
import reconhecimento.model.LeituraImagens;
import reconhecimento.model.Tipo;

// TODO: Refatorar classe.
public class Preprocessamento {

//	public static List<Imagem> lerImagens(final String arquivo,
//			final Integer valor, final int largura, final int altura)
//			throws FileNotFoundException {
//		final List<Imagem> imagens = new ArrayList<Imagem>(); 
//
//		try {
//			BufferedImage buffer = ImageIO.read(new File(arquivo));
//			// 320 = n * image.getWidth()
////			buffer = redimensionar(buffer, 10, 30);
//			byte imagem[][] = new byte[buffer.getWidth()][buffer.getHeight()];
//
//			for (int y = 0; y < buffer.getHeight(); y++) {
//				for (int x = 0; x < buffer.getWidth(); x++) {
//					imagem[x][y] = (byte) ((buffer.getRGB(x, y) == -1) ? 0 : 1);
//				}
//			}
//
//			System.out.println(imagem);
//		} catch (IOException e1) {
//			e1.printStackTrace();
//		}
//		return imagens;
//	}

	// TODO: Terminar
	public static void redimensionar(Imagem imagem, int n) {
		int w = n * imagem.getLargura() / 10;
		int h = n * imagem.getAltura() / 10;
		
		imagem.setAltura(h);
		imagem.setLargura(w);
		
		byte[][] bits = new byte[h][w];
		for (int i = 0; i < h; ++i) {
			for (int j = 0; j < w; ++j) {
				bits[i][j] = imagem.getPixel(10 * j / n, 10 * i / n);
			}
		}
		
		imagem.setImagem(bits);
	}

	public static void main(String[] args) throws Exception {
		Imagem img = LeituraImagens.lerImagens(Tipo.TESTES, 0).get(0);
		System.out.println(img);
		System.out.println("-------------------");
		redimensionar(img, 20);
		System.out.println(img);
	}

}
